Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Convertir guillemets simples en doubles

Abhi, le mardi 18 novembre 2008 à 23:05:38
Bonjour,

Voici mon problème :

Comment convertir une chaîne de caractères entre guillemets simples (pour laquelle les \r et \n ne sont pas interprétés) en chaîne entre guillemets doubles ?

Je veux simplement appliquer la fonction nbl2r à une chaîne stockée dans une BDD, et contenue dans une variable du type $message.

Or :

echo nb2lr("Ceci est un message. \r\n Et je viens de sauter une ligne");

fonctionne, mais pas :

$message = $tableau['message'];
echo nb2lr($message);

car

echo nb2lr('Ceci est un message. \r\n Et je viens de sauter une ligne');

ne fonctionne pas.

Bravo - et merci - à celui qui peut me tirer d'affaire (cela doit être très simple, je suppose, mais j'arrive pas à trouver).
Configuration: Windows XP
Firefox 3.0.4
Répondre à Abhi  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Chupachups23, le mardi 18 novembre 2008 à 23:19:54
http://fr2.php.net/manual/fr/function.nl2br.php

<?php
$message = "foo n'est pas\n bar";
echo nl2br($message);
?>
Chez moi ça marche...
Répondre à Chupachups23

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Abhi, le mardi 18 novembre 2008 à 23:23:21
Bien sûr, Chupa ! Chez moi aussi ça marche !

Mais je ne peux pas mettre ces guillemets doubles puisque je récupère le $message d'une base de données.
Du coup, comment je le "convertis" en guillemets doubles ?

J'ai essayé le truc débile et peu pro suivant :

$message = " " . $message . " ";

Mais évidemment ça marche pas.

Merci en tout cas !
Répondre à Abhi

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
toto, le mardi 18 novembre 2008 à 23:33:42
Bonsoir

Mais je ne peux pas mettre ces guillemets doubles puisque je récupère le $message d'une base de données.
Si tu extrais tes données d'une base, elles sont directement dans une variable, pas entre guillemets simples ni entre guillemets doubles.
Si tu as un problème avec nl2br($variable) après avoir récupéré $variable d'une base de données, c'est que tu as mal enregistré ton texte dans ta base de données. Comment traites-tu tes données pour les enregistrer ?
Répondre à toto

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Abhinophios, le mardi 18 novembre 2008 à 23:41:21
Ah ! tu dois avoir raison, Toto.

Voici comment je fais :

Je mets un formulaire :


<form method="post" action="forum.php">
<p>
Message :
<textarea name="message" rows="8" cols="35"></textarea>
<input type="submit" value="Envoyer" />
</p>
</form>

Puis je récupère les données :

if (isset($_POST['message']))
{
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));

// Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br /> :

$message = nl2br($message);

// Après je fais un certain nombre de vérifications (message pas vide, pas de répétition, etc.)

// Puis j'enregistre DE CETTE FACON :

mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "', '" . time() . "')");

Et c'est ICI que j'aimerais faire :

echo nl2br($message);

Ou plus exactement :

mail('moi@moi.com', 'Objet', nb2lr($message));

Et ça ne marche pas.

Donc je me rends compte que la BDD n'a rien à voir là-dedans, c'est par la méthode POST que je récupère mon $message.

Merci !
Répondre à Abhinophios

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
toto, le mercredi 19 novembre 2008 à 00:15:12
Grosses bêtises (malheureusement archicourantes...

$message = mysql_real_escape_string(htmlspecialchars($_POST['message'])­);
// Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br /> :
$message = nl2br($message);
Après je fais un certain nombre de vérifications (message pas vide, pas de répétition, etc.)  

1 - le mysql_real_escape_string ne devrait être fait que immédiatement avant d'enregistrer les données dans la base. Le résultat de cette fonction ne doit servir qu'à la requête mysql, pas à faire d'autres traitements comparaisons ou autres, car sinon ces traitements sont faits sur des messages modifiés.
2 - de même, le nl2br ne doit être appelé qu'au moment d'envoyer le texte à une page HTML (combiné avec htmlentities d'ailleurs) car il permet de transformer les sauts de ligne en "<br />" ce qui ne sert qu'au HTML, surtout pas à la base de données ni à l'envoi de mail (à moins que ton mail ait le mime type html).
Si tu convertis les sauts de ligne en "<br />" avant d'enregistrer dans ta base de données, c'est "<br />" qui est enregistré et tu ne peux faire la conversion dans l'autre sens. Si tu la fais, tu convertiras aussi les <br /> que l'utilisateur aurait écrit.
Le message que tu es en train de lire est un bon exemple : il ne mélange pas les <br /> que j'ai moi-même tapés en toutes lettres avec les sauts de ligne qui sont pourtant bien traduits en <br /> pour être affichés
Répondre à toto

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Abhinophios, le mercredi 19 novembre 2008 à 00:17:21
Merci infiniment Toto !

Je vais essayer de corriger mes bêtises et je reviens.
Répondre à Abhinophios

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
toto, le mercredi 19 novembre 2008 à 00:22:17
En résumé :
if (isset($_POST['message']))
{
$message =$_POST['message'];
// il faut peut-être un stripslashes ici - dépend de la configuration du serveur

// Après je fais un certain nombre de vérifications (message pas vide, pas de répétition, etc.)
// Puis j'enregistre DE CETTE FACON :
mysql_query("INSERT INTO livreor VALUES('', '" . mysql_escape_string($pseudo) . "', '" . mysql_escape_string($message) . "', '" . time() . "')");
Et c'est ICI que j'aimerais faire :
echo nl2br(htmlentities($message));

Ou plus exactement :

mail('moi@moi.com', 'Objet', $message);                 // si mail en texte simple
mail('moi@moi.com', 'Objet',nl2br(htmlentities($message))); // si html

Répondre à toto

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Abhinophios, le mercredi 19 novembre 2008 à 01:07:25
Merveilleux !

Tout fonctionne maintenant !

Un grand merci à toi, Toto !
Répondre à Abhinophios
Javascript - Les chaînes de caractères Qu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de... www.commentcamarche.net/contents/javascript/jschar.php3
Télécharger ConvertEuro Un convertisseur euro simple d'utilisation. Il convertit les euros dans toutes les anciennes monnaies de l'Union Européenne, et permet également d'ajouter/modifier/supprimer vos propres monnaies personnalisées en définissant vous-mêmes le taux de... www.commentcamarche.net/telecharger/telecharger-3673489-converteuro
Conversion TIFF multi-page en PDF (Résolu) Bonjour a tous ! Je souhaiterais savoir s'il existe un logiciel qui existe pour convertir un document TIFF multi-page en PDF. Car j'ai beau rechercher je ne trouve que des convertisseur TIFF simple page. J'ai aussi une petite question,... www.commentcamarche.net/forum/affich-2973958-conversion-tiff-multi-page-en-pdf
Comment convertir un clip vidéo en .flv et inversementIntroduction Voici une astuce pour vous permettre de simplement convertir un clip vidéo de (presque) n'importe quel format vers le format .flv. Cette astuce vous sera utile pour traiter de la vidéo à postériori ou pour publier votre vidéo sur... www.commentcamarche.net/faq/sujet-8183-comment-convertir-un-clip-video-en-flv-et-inversement
Comment lire un fichier .ps (Postscript) ?2 solutions: Solution 1 Installez PDF Creator (gratuit) (Lors de l'installation, cocher la case "Associer .PS à PDF Converter") Double-cliquez sur le fichier .ps pour le convertir en PDF. Ouvrez le fichier PDF avec votre logiciel habituel... www.commentcamarche.net/faq/sujet-2324-comment-lire-un-fichier-ps-postscript
Supprimer les accents avec PHPPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function... www.commentcamarche.net/faq/sujet-8063-supprimer-les-accents-avec-php
SVP urgent exodia et .. (Résolu)Bonjour,j'ai un message d'erreur exodia et je pe plus entrer sur mes DD avec un simple double clik voila le rapport Logfile of Trend Micro HijackThis v2.0.2 Scan saved at 15:12:35, on 19/06/2008 Platform: Windows XP SP2 (WinNT 5.01.2600)... www.commentcamarche.net/forum/affich-6977960-svp-urgent-exodia-et
Echappement - PHP (Résolu)Bonjour, je voudrais savoir si quelq'un saurait comment faire pour ajouter un caractère d'échappement dans un texte devant les guillemets simples . J'ai essayé avec htmlspecialchars(), mais sa ne fonctionne pas, j'ai aussi essayé... www.commentcamarche.net/forum/affich-9876062-echappement-php
Apostrophe dans BDD (Résolu)Bonjour, Mon problème est probablement facile à résoudre, mais je ne vois pas comment ! :) En fait, j'ai dans ma BDD (gérée par phpmyadmin) a inséré dans un champ des guillemets simples. C'est à dire que je remplis le champ sous la forme... www.commentcamarche.net/forum/affich-7259729-apostrophe-dans-bdd
Télécharger Free Excel/Xls to Pdf ConverterConvertissez rapidement et facilement vos documents Excel en document PDF. Rien de plus simple avec Excel/Xls to Pdf Converter. C'est un outil de conversion qui vous permet de convertir un fichier Excel en PDF. La conversion peut se faire... www.commentcamarche.net/telecharger/telecharger-34056376-free-excel-xls-to-pdf-converter
Télécharger Convertisseur Works pour Word 2000 Bien qu'à la base Works et Word fassent la même chose, les fichiers créés dans chaque application n'ont pas la même extension, donc incompatibles. Convertisseur Works pour Word 2000 est tout simplement un outil permettant d'ouvrir les fichiers.wps de... www.commentcamarche.net/telecharger/telecharger-34056083-convertisseur-works-pour-word-2000
Canon DR-5010C5010 C, SCSI/USB, Profondeur Couleur :24 bit, Divers:High speed simplex 50ppm and duplex 100ipm scanning, 100-sheet Automatic Document Feeder, Black & White, colour, grayscale scanning modes, Skip blank page, Ulstrasonic Double-Feed Detection, Daily... www.commentcamarche.net/guide-achat/canon-dr-5010c-356448-fiche-technique
Javascript - Les variablesLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,... www.commentcamarche.net/contents/javascript/jsvar.php3
Java - Les types de donnéesLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et... www.commentcamarche.net/contents/java/javatype.php3
Langage C - Les types de donnéesLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le... www.commentcamarche.net/contents/c/ctype.php3